In wireless communication systems, several radio impairments can endanger reliable reception of information bits. These impairments may include additive thermal noise, interference, multipath propagation, frequency offset and quantization noise. In order to combat these impairments and provide enough protection to transmitted information, channel coding is an indispensable tool. Over the past seven decades, a very thorough and detailed theory has been developed around channel coding, elaborating over a vast range of codes that provide a variety of encoding and decoding complexities, performance that approaches or backs away from theoretical bounds, as well as many other desirable properties. The greatest challenge in coding theory is the complexity-performance trade-off. On the one hand, sufficient structure must be embedded in the code in order to be exploited in simplifying the encoding and decoding complexities. On the other hand, it is a known fact from coding theory that two important ingredients for superior performance are randomness and large codeword lengths. Two pioneering works that managed to reconcile these two contradictory requirements were turbo codes and low-density parity-check (LDPC) codes.
Turbo codes introduce structure by utilizing simple component codes like convolutional or block codes that have simple encoding and decoding complexities, while randomness is introduced by using an interleaver. The decoding is performed in an iterative way by exchanging extrinsic probabilities on coded bits, usually in the form of log-likelihood ratios (LLR). LDPC codes are a certain class of linear block codes that are characterized by having a parity-check matrix with a low-density of ones. In LDPC codes, both structure and randomness are introduced in the design of the parity-check matrix. Decoding of LDPC codes is done via the message-passing algorithm (also called the sum-product algorithm), which exchanges messages between two sets of nodes in a bi-partite graph. Encoding of LDPC codes usually does not depend on the generator matrix, either because it is not easy to determine or because the encoding complexity will still be high. Thus, LDPC codes resort to alternative techniques to do the encoding.
One class of LDPC codes is repeat-accumulate (RA) codes. RA codes have simple encoding, and good performance at low coding rates. The encoding of RA codes consists of three steps: 1) repetition encoder; 2) interleave (to introduce randomness); and 3) accumulator (1/(1+D)). Using these features, an overall generator matrix of the RA code may be determined. A parity-check matrix of such an RA code can be generated using this information. The parity-check matrix for such an RA code can be thought of as the inverse operation of the three steps mentioned above, in reverse order: 1) differentiator (1−D) to undo accumulator; 2) deinterleaver; and 3) repetition decoder. Knowing the parity-check matrix makes decoding of the RA code using message-passing decoding possible. RA codes could also be thought of as a special kind of turbo code, with the outer component code being a repetition code, and the inner component code being a rate-1 convolutional code with a two-state trellis. This makes turbo decoding also possible.
In some wireless scenarios, the modulation technique of choice inherently has the accumulative property described above. For example, differential binary phase shift keying (D-BPSK) or certain kinds of continuous-phase frequency shift keying (CP-FSK), such as Gaussian FSK (GFSK), inherently have the accumulative property. These modulation techniques have desirable properties, such as constant-envelope and a relatively compact spectrum. They also perform well with a non-coherent demodulator when channel state information is not available.
If a transmitter uses a repetition code and an interleaver in conjunction with a modulation technique having the accumulator property, the resulting scheme becomes equivalent to an RA code, which lends itself naturally to turbo decoding. Turbo decoding yields superior performance and very low complexity, since the component code decoders are rather simple: repetition decoder and two-state BCJR algorithm. For transmission schemes involving a repetition code, an interleaver, and a modulation with memory such as DBPSK or some kind of CP-FSK such as GFSK, existing solutions in receivers rely on turbo decoders that exchange extrinsic LLRs between component decoders. The component encoders may include a repetition code decoder and a two-state trellis-based Log-MAP or Max-Log algorithm (an exact Log-MAP is called the BCJR algorithm). Although this offers good performance, the decoding latency could be high because every iteration of a trellis decoder has to be done sequentially in time, i.e., decoding steps cannot be done in parallel to save time. If the decoding requires several iterations between the trellis decoder and the repetition decoder to converge to the required performance, the culminating decoding latency could be high.
In principle, message-passing decoding has very comparable complexity (in terms of the required number of operations) to a turbo decoder, and has certain advantages. For example, message-passing decoding parallelizes the processing compared to a turbo decoder, which executes steps sequentially in time. Thus, message-passing decoding allows processing to be done in parallel, resulting in a reduction in the decoding time. In certain cases, however, a transmission scheme may have distributed pilots inserted in between the data sub-blocks. For example, distributed pilots may be inserted to assist in frequency tracking, channel estimation or modulation index correction. In such a case, caution has to be taken when dealing with certain transmission schemes as an RA code, because the accumulation property is interrupted and reset at the end of each data sub-block. The introduction of distributed pilots may cause difficulty in applying the message-passing algorithm to decode the transmission scheme. Thus, there is a need for a method of applying message-passing decoding to transmission schemes having distributed pilots.